#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>

void QuickSort(int arr[], int l, int r)
{
	if (l >= r) return;
	int i = l, j = r;
	while (i < j)
	{
		while (i < j && arr[i] < arr[l]) i++;
		while (i < j && arr[j] >= arr[l]) j--;
		std::swap(arr[i], arr[j]);
	}
	std::swap(arr[l], arr[i]);
	QuickSort(arr, l, i - 1);
	QuickSort(arr, i + 1, r);
}

int main()
{
	int arr[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
	int n = sizeof(arr) / sizeof(arr[0]);
	for (auto num : arr)
	{
		std::cout << num << ' ';
	}
	std::cout << std::endl;
	QuickSort(arr, 0, n - 1);
	for (auto num : arr)
	{
		std::cout << num << ' ';
	}
	std::cout << std::endl;
}